package models

import (
	"time"
)

type ActiveLog struct {
	Id         int   `gorm:"column:id"`
	UserId     int   `gorm:"column:user_id;uniqueIndex"`
	ActiveTime int64 `gorm:"column:active_time"`
	UserStatus int   `gorm:"column:user_status"`
	Type       int   `gorm:"column:type"`
}

func SaveActiveLog(user_id int, user_status int64, type_num int) bool {
	// 获取今天的日期字符串 (YYYY-MM-DD)
	// 获取当前时间
	now := time.Now()

	// 获取今天的起始时间（00:00:00）
	todayStart := time.Date(
		now.Year(),  // 年
		now.Month(), // 月
		now.Day(),   // 日
		0, 0, 0, 0,  // 时、分、秒、纳秒均为0
		now.Location(), // 使用当前时区
	)
	// 转换为Unix时间戳（秒）
	timestamp := todayStart.Unix()
	// fmt.Println("today:::", timestamp)
	var num int

	db.Model(&ActiveLog{}).Where("user_id = ? AND type = ? AND active_time > ?", user_id, type_num, timestamp).Count(&num)
	if num == 0 {
		active_time := time.Now().Unix()
		// 记录不存在：根据存在的字段创建新记录
		newUserLog := ActiveLog{
			UserId:     user_id,
			ActiveTime: active_time,
			UserStatus: int(user_status),
			Type:       type_num,
		}
		result := db.Create(&newUserLog)
		return result.Error == nil
	}
	return true
}
